From 2d0eb8a588b9075b7918425abd562cd1ef5c8cca Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Sun, 27 Jan 2002 22:21:27 +0000 Subject: [PATCH] add _gtk_rbtree_mark_invalid (my previous commit already needed this ...) Sun Jan 27 23:23:23 Kristian Rietveld * gtk/gtkrbtree.[ch]: add _gtk_rbtree_mark_invalid (my previous commit already needed this ...) (/me broke the build for the first time ... :) --- ChangeLog | 5 +++++ ChangeLog.pre-2-0 | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-2 | 5 +++++ ChangeLog.pre-2-4 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ gtk/gtkrbtree.c | 24 ++++++++++++++++++++++++ gtk/gtkrbtree.h | 1 + 9 files changed, 60 insertions(+) diff --git a/ChangeLog b/ChangeLog index 1b6796a309..c689a7eec7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Jan 27 23:23:23 Kristian Rietveld + + * gtk/gtkrbtree.[ch]: add _gtk_rbtree_mark_invalid (my previous + commit already needed this ...) + Sun Jan 27 22:13:02 Kristian Rietveld Fix for bug #69586 diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 1b6796a309..c689a7eec7 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,8 @@ +Sun Jan 27 23:23:23 Kristian Rietveld + + * gtk/gtkrbtree.[ch]: add _gtk_rbtree_mark_invalid (my previous + commit already needed this ...) + Sun Jan 27 22:13:02 Kristian Rietveld Fix for bug #69586 diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 1b6796a309..c689a7eec7 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Sun Jan 27 23:23:23 Kristian Rietveld + + * gtk/gtkrbtree.[ch]: add _gtk_rbtree_mark_invalid (my previous + commit already needed this ...) + Sun Jan 27 22:13:02 Kristian Rietveld Fix for bug #69586 diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 1b6796a309..c689a7eec7 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,8 @@ +Sun Jan 27 23:23:23 Kristian Rietveld + + * gtk/gtkrbtree.[ch]: add _gtk_rbtree_mark_invalid (my previous + commit already needed this ...) + Sun Jan 27 22:13:02 Kristian Rietveld Fix for bug #69586 diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 1b6796a309..c689a7eec7 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +Sun Jan 27 23:23:23 Kristian Rietveld + + * gtk/gtkrbtree.[ch]: add _gtk_rbtree_mark_invalid (my previous + commit already needed this ...) + Sun Jan 27 22:13:02 Kristian Rietveld Fix for bug #69586 diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 1b6796a309..c689a7eec7 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Sun Jan 27 23:23:23 Kristian Rietveld + + * gtk/gtkrbtree.[ch]: add _gtk_rbtree_mark_invalid (my previous + commit already needed this ...) + Sun Jan 27 22:13:02 Kristian Rietveld Fix for bug #69586 diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 1b6796a309..c689a7eec7 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Sun Jan 27 23:23:23 Kristian Rietveld + + * gtk/gtkrbtree.[ch]: add _gtk_rbtree_mark_invalid (my previous + commit already needed this ...) + Sun Jan 27 22:13:02 Kristian Rietveld Fix for bug #69586 diff --git a/gtk/gtkrbtree.c b/gtk/gtkrbtree.c index 5739e59a82..0170f2cff1 100644 --- a/gtk/gtkrbtree.c +++ b/gtk/gtkrbtree.c @@ -853,6 +853,30 @@ _gtk_rbtree_column_invalid (GtkRBTree *tree) while ((node = _gtk_rbtree_next (tree, node)) != NULL); } +void +_gtk_rbtree_mark_invalid (GtkRBTree *tree) +{ + GtkRBNode *node; + + if (tree == NULL) + return; + node = tree->root; + g_assert (node); + + while (node->left != tree->nil) + node = node->left; + + do + { + GTK_RBNODE_SET_FLAG (node, GTK_RBNODE_INVALID); + GTK_RBNODE_SET_FLAG (node, GTK_RBNODE_DESCENDANTS_INVALID); + + if (node->children) + _gtk_rbtree_mark_invalid (node->children); + } + while ((node = _gtk_rbtree_next (tree, node)) != NULL); +} + typedef struct _GtkRBReorder { GtkRBTree *children; diff --git a/gtk/gtkrbtree.h b/gtk/gtkrbtree.h index 04c5b0d925..f3c585b852 100644 --- a/gtk/gtkrbtree.h +++ b/gtk/gtkrbtree.h @@ -139,6 +139,7 @@ void _gtk_rbtree_node_mark_invalid(GtkRBTree *tree, void _gtk_rbtree_node_mark_valid (GtkRBTree *tree, GtkRBNode *node); void _gtk_rbtree_column_invalid (GtkRBTree *tree); +void _gtk_rbtree_mark_invalid (GtkRBTree *tree); gint _gtk_rbtree_node_find_offset (GtkRBTree *tree, GtkRBNode *node); gint _gtk_rbtree_node_find_parity (GtkRBTree *tree, -- 2.30.2